#ifndef PLANET_H
#define PLANET_H

#include <string>
#include "ParticleSystem.h"

class Planet
{
public:

	Planet()
	{
		name = " ";
		transX = 0.0;
		transY = 0.0;
		transZ = 0.0;
		colorR = 255.0;
		colorG = 255.0;
		colorB = 255.0;
		radius = 0.0;
		size = 0.0;
		cur_deg = 0.0;
		deg_inc = 1.0;
		esize = 1.0;
		esize = 25.0;
		orb_ecc = 0.0;
		xradius = 0.0;
		yradius = 0.0;
		zradius = 0.0;
		orb_tilt = 0.0;
		rotateX = 0.0;
		rotateY = 0.0;
		rotateZ = 0.0;
		rotationFactor =0.0;
	};

	Planet(std::string NameOfPlanet);

	void updatePlanet(double value);

	void initializeOrbit();

	void initializeRings();

	void destructionMode(bool &DMode);

	void blowUpPlanet();


	std::string name;
	double transX, transY, transZ, size;
	double colorR, colorG, colorB;
	double cur_deg, deg_inc; // the current degree and scale of increment
	double esize;
	double edist;
	double orb_ecc; // orbital eccentricity
	double xradius, yradius, zradius; // for elliptical orbits, y is incline
	double orb_tilt;

	double rotateX;
double rotateY;
double rotateZ;
double rotationFactor;
	double orbit[360][3];
	ParticleSystem ps;

private:
	double radius;
	double ringRot;
};

#endif